package com.newtouch.bxzs.business.train.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.newtouch.bxzs.business.train.model.bo.ExaminationPaperBaseInfoDetailBO;
import com.newtouch.bxzs.business.train.model.bo.ExaminationPaperForExaminationBO;
import com.newtouch.bxzs.business.train.model.bo.ExaminationPaperPCListBO;
import com.newtouch.bxzs.business.train.model.vo.ChangeExaminationPaperStateVO;
import com.newtouch.bxzs.business.train.model.vo.ExaminationPaperForExaminationListVO;
import com.newtouch.bxzs.business.train.model.vo.ExaminationPaperPCListVO;
import com.newtouch.bxzs.business.train.model.vo.ModifyExaminationPaperBaseInfoVO;

import java.util.List;

/**
 * 试卷相关业务逻辑
 *
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2021/1/21</td>
 * <td>lanwei</td>
 * <td>Create</td>
 * </tr>
 * </table>
 *
 * @author lanwei
 * @version 1.0.0
 * @since 1.0.0
 */
public interface ExaminationPaperService {

    /**
     * 获取考试设置里面的试卷列表
     * @param examinationPaperForExaminationListVO
     * @return
     */
    IPage<ExaminationPaperForExaminationBO> getExaminationPaperForExamination(ExaminationPaperForExaminationListVO examinationPaperForExaminationListVO);

    /**
     * 维护考试信息-查询试卷列表
     * @param examinationPaperPCListVO
     * @return
     */
    IPage<ExaminationPaperPCListBO> getExaminationPaperPCList(ExaminationPaperPCListVO examinationPaperPCListVO);


    /**
     * 创建、修改试卷基本信息
     * @param examinationPaperBaseInfoVO
     * @return
     */
    String modifyExaminationPaperBaseInfo(ModifyExaminationPaperBaseInfoVO examinationPaperBaseInfoVO);

    /**
     * 启用、禁用、作废试卷
     * @param examinationPaperStateVO
     */
    Integer changeExaminationPaperState(ChangeExaminationPaperStateVO examinationPaperStateVO);

    /**
     * 删除试卷
     * @param examinationPaperIds 试卷id集合
     */
    Integer deleteExaminationPaper(List<String> examinationPaperIds);

    /**
     * 试卷基本信息
     * @param examinationPaperId
     * @return
     */
    ExaminationPaperBaseInfoDetailBO getExaminationPaperBaseInfo(String examinationPaperId);
    
    /**
     * 设置试卷的对应试题
     * @param examinationPaperId
     * @param examinationQuestionIds
     */
    void modifyExaminationPaperExaminationQuestionsMap(String examinationPaperId,
			List<String> examinationQuestionIds);
}
